Many computer or communication devices rely on a keyboard or a keypad to provide part of a user interface. However, using the keyboard or keypad is often cumbersome and/or inconvenient. In addition, other devices that use touch screens to emulate a keyboard or a keypad may not provide significant improvements over devices that use a keyboard or a keypad.